from bs4 import BeautifulSoup #导入BeautifulSoup库
import requests #导入requests库，用来读取在线网页数据的
import time  #导入time库，定时作用
import pymongo #导入pymongo用于处理mongoDB数据库

### ex08：用mongoDB存取爬虫获取的信息
##  网址：https://knewone.com/
##  时间：2017年10月15日
##  难点:学会使用mongodb

url = "https://knewone.com/discover?page=" #这是列表页网址的形式

#### 创建或者连接mongoDB数据库
client = pymongo.MongoClient('localhost',27017) #连接mongoDB
knewone = client['knewone'] #创建或切换到相应的数据库
sheet_tab = knewone['sheet_tab'] #创建或切换到相应的数据表

###第一个函数用于提取列表页产品的信息
def get_url_info(url):
    webdata = requests.get(url)  # 通过get方法获取网页数据d
    soup = BeautifulSoup(webdata.text, 'lxml')  # 通过BeautifulSoup对网页数据解析
    titles = soup.select("section.content > h4 > a")  # 获取所有产品名称
    links = soup.select("section.content > h4 > a")  # 获取所有产品链接
    images = soup.select("a.cover-inner > img")  # 获取图片
    for title,link,image in zip(titles,links,images):
        data = {
            "名称":title.get("title"),
            "链接":"https://knewone.com"+link.get("href"),
            "图片":image.get("src")
        }
        sheet_tab.insert_one(data) #将数据放入到数据库中
        #print(data)

###第二个函数用于生成列表页
###列表页的形式要通过查看XHR得到
def get_more_pages(start, end):
    for number in range(start,end):
        get_url_info(url+str(number))
        time.sleep(3)   #暂停3秒

def show_data():
    for item in sheet_tab.find(): #查询出所有的数据
        print(item)

# get_more_pages(1,3)
show_data()